<template>
	<view class="" style="height: 100%;">
		<!-- 表头部分 -->
		<view class="table-header">
			<view class="header-item">类别</view>
			<view class="header-item">交易额(元)</view>
			<view class="header-item">收益(元)</view>
		</view>
		
		<mescroll-uni :fixed="false" @init="mescrollInit" :height="height" :down="downOption"
			@down="downCallback" :up="upOption" @up="upCallback" @emptyclick="emptyClick">
			<view class="mescroll-item" v-for="(item,index) in goods" :key="index">
				<view class="item-col type-col">
					{{item.typeName}}
				</view>
				<view class="item-col trade-col">
					{{number.parsePrice(item.tradeAmt || 0)}}
				</view>
				<view class="item-col amt-col" :class="{'positive': item.amt > 0}">
					{{item.amt > 0 ? '+' + number.parsePrice(item.amt) : number.parsePrice(item.amt)}}
				</view>
			</view>
		</mescroll-uni>
	</view>
</template>

<script>
	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
	const api = require('../../config/api');
	const util = require('../../utils/util');
	import number from '../../utils/number.js'
	export default {
		mixins: [MescrollMixin], // 使用mixin
		data() {
			return {
				 number: number, //声明number属性并赋值为引入的number模块
				 height: "100%", // 添加height属性
				downOption: {
					auto: true //  false 不自动加载 (mixin已处理第一个tab触发downCallback)  true
				},
				upOption: {
					auto: false, // 不自动加载
					noMoreSize: 4,
					textLoading: '加载中 ...', // 加载中的提示文本
					textNoMore: '暂无更多', // 没有更多数据的提示文本
					empty: {
						tip: '暂无相关数据', // 提示
					},
				},
				goods: [
				],
			}
		},
		onShow() {
		
		},
		methods: {
			/*下拉刷新的回调 */
			downCallback() {
				// 这里加载你想下拉刷新的数据, 比如刷新轮播数据
				// loadSwiper();
				// 下拉刷新的回调,默认重置上拉加载列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
				this.mescroll.resetUpScroll()
			},
			/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
			upCallback(page) {
				//联网加载数据
				// this.mescroll.endErr();
				let pageNum = page.num; // 页码, 默认从1开始
				let pageSize = page.size; // 页长, 默认每页10条
				const res = util.request(
					api.zzyBtListUrl , {
						page: pageNum,
						limit: pageSize,
		
					},
					'POST'
				).then(res => {
					console.log(res);
					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
					
					// 检查接口返回的数据格式并正确处理
					if (res.code === 0 && res.data && Array.isArray(res.data)) {
						// 由于接口返回的是单层数组，没有分页数据，这里假设只有一页
						let totalPage = 1; 
						this.mescroll.endByPage(res.data.length, totalPage);
						
						//设置列表数据
						if (page.num == 1) this.goods = []; //如果是第一页需手动制空列表
						this.goods = this.goods.concat(res.data); //追加新数据
					} else {
						// 如果数据格式不正确或为空，结束加载并显示空内容
						this.mescroll.endSuccess(0);
						this.goods = [];
					}
				}).catch(() => {
					//联网失败, 结束加载
					this.mescroll.endErr();
				})
			},
			//点击空布局按钮的回调
			emptyClick() {
				uni.showToast({
					title: '点击了按钮,具体逻辑自行实现'
				})
			}
		}
		}
</script>

<style>
	page {
		height: 100%;
		background-color: #F4F4F4;
	}

	.mescroll-upwarp {
		min-height: 0rpx !important;
	}
</style>
<style lang="scss" scoped>
	// 表头样式
	.table-header {
		display: flex;
		background-color: #f8f8fa;
		padding: 15px;
		margin: 0 15px;
		border-radius: 10px 10px 0 0;
	}
	
	.header-item {
		flex: 1;
		text-align: left;
		color: #333;
		font-size: 14px;
		
		&:nth-child(2) {
			text-align: center;
		}
		
		&:last-child {
			text-align: right;
		}
	}
	
	// 列表项样式
	.mescroll-item {
		background-color: #fff;
		margin: 0 15px;
		padding: 15px;
		font-size: 14px;
		display: flex;
		border-bottom: 1px solid #f0f0f0;
		
		&:last-child {
			border-radius: 0 0 10px 10px;
			border-bottom: none;
		}
	}
	
	.item-col {
		flex: 1;
	}
	
	.type-col {
		text-align: left;
		font-size: 15px;
		color: #333;
	}
	
	.trade-col {
		text-align: center;
		font-size: 15px;
		color: #333;
	}
	
	.amt-col {
		text-align: right;
		font-size: 15px;
		color: #333;
		
		&.positive {
			color: #4285f4;
		}
	}
</style>